aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/(app)/[username]/(profile)/+page.svelte
blob: 7d342994374647292c9bcf9c864a8eb4ad1d5667 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<script>
  import { browser } from "$app/environment";
  import { onMount } from "svelte";
  import { scale } from "svelte/transition";
  import { btc, f, sat } from "$lib/utils";
  import Account from "$comp/Account.svelte";
  import Balance from "$comp/Balance.svelte";
  import { t } from "$lib/translations";
  import { installPrompt, password } from "$lib/store";
  import { afterNavigate, preloadData } from "$app/navigation";
  import { page } from "$app/stores";

  let { data } = $props();

  afterNavigate(() => {
    if (user) preloadData(`/${user.username}/receive`);
    preloadData("/send");
  });

  let { accounts, subject, rate, user } = $derived(data);
  let { locked } = $derived(user);

  let install = async () => {
    if (!$installPrompt) return;
    await $installPrompt.prompt();
    $installPrompt = null;
  };

  let pubkey = $state();
  if (user) user.savings = 0;
  let { host } = $derived($page.url);
</script>

<div class="space-y-2">
  {#if user?.destination && !user?.autowithdraw}
    <div class="rounded-2xl space-y-2 p-4 shadow-lg">
      <h1 class="text-3xl font-bold">
        {$t("user.settings.confirmAutoWithdrawal")}
      </h1>
      <div>
        {$t("user.settings.confirmAutoWithdrawalDesc")}
      </div>

      <a href="/settings/account" class="btn">
        <iconify-icon icon="ph:gear-bold" width="32"></iconify-icon>
        Settings</a
      >
    </div>
  {/if}
  {#if user?.fresh}
    <div>
      {$t("user.settings.yourUsername")} <b>{user?.username}</b>
      {#if $password}
        <br />
        {$t("user.settings.yourPassword")}
        <b>{$password}</b>{/if}
    </div>

    <a href="/settings/profile" class="btn">
      <iconify-icon icon="ph:gear-bold" width="32"></iconify-icon>
      {$t("user.settings.continueSettingUp")}</a
    >
  {/if}
  {#if user?.id && user.id === subject.id}
    <div class="space-y-5" data-sveltekit-preload-data="false">
      {#each accounts as account, i}
        <Account {user} {rate} {account} last={i === accounts.length - 1} />
      {/each}
    </div>

    {#if locked}
      <div class="text-sm">
        {$t("incident")}
      </div>
    {/if}

    {#if $installPrompt}
      <button class="btn btn-accent lg:hidden" onclick={install}>
        <iconify-icon noobserver icon="ph:floppy-disk-bold" width="32"
        ></iconify-icon>
        {$t("user.install")}
      </button>
    {/if}
  {/if}
</div>

<!-- <a href="/funder" class="btn">Funder</a> -->

<div class="fixed inset-x-0 mx-auto flex bottom-16 px-4">
  {#if user?.username !== subject.username && (!subject.anon || subject.lud16)}
    <a
      href={subject.anon
        ? `/send/${encodeURIComponent(subject.lud16)}`
        : `/pay/${subject.username}`}
      class="contents"
    >
      <button
        class="btn btn-accent !text-2xl items-center !w-full sm:!max-w-[400px] mx-auto"
      >
        <iconify-icon
          noobserver
          icon="ph:lightning-fill"
          class="text-yellow-300"
        ></iconify-icon>
        <div>
          {$t("user.pay")}
          {subject.username}
        </div>
      </button>
    </a>
  {/if}
</div>